10 GOTO90 20 ************************************ 30 *** TANK VOLUME *** 40 ************************************ 50 *** BY TIM TEMPLE *** 60 ************************************ 70 *** PUBLIC DOMAIN *** 80 ************************************ 90 P$="[147][159]  TANK VOLUME [146] " 100 PRINTP$" THIS PROGRAM FINDS THE VOLUME OF LI- QUID IN A PARTIALLY "; 110 PRINT"FILLED TANK. JUST TELL IT THE TYPE OF TANK, TANK DIMEN- SIONS, "; 120 PRINT"THE TANK SOUNDING (FROM THE BOT- TOM), AND THIS PROGRAM WILL TELL "; 130 PRINT"YOU THE VOLUME IN IT.":PRINT"HIT ANY KEY TO GO ON. 140 [161]C$:[139]C$[178]""[167]140 150 [153]P$;"WHAT DOES THE TANK LOOK LIKE?" 160 [153]"F1WAIT-A BOX",,,,"F3WAIT-AN UPRIGHT CYLINDER" 170 [153]"F5WAIT-A CYLINDER ON ITS SIDE",,"F7WAIT-A SPHERE" 180 [153]" HIT THE APPROPRIATE FUNCTION KEY" 190 [161]A$:[139]A$[177]"LET"[176]A$[179]"INPUT"[167]190 200 A%[178][198](A$)[171]132:[145]A%[141]210,230,250,270:[156]:[137]150 210 [143] BOX MENU * * * 220 [153]"LOAD"P$:[129]I[178]1[164]4:[145] I [141]320,290,340,550:[153]"LOAD"P$:[130]:[142] 230 [143] UPRIGHT CYLINDER MENU * * 240 [153]"LOAD"P$:[129]I[178]1[164]4:[145] I [141]340,360,390,550:[153]"LOAD"P$:[130]:[142] 250 [143] SIDE CYLINDER MENU * * * 260 [153]"LOAD"P$:[129]I[178]1[164]4:[145] I [141]390,320,360,550:[153]"LOAD"P$:[130]:[142] 270 [143] SPHERE MENU * * * 280 [153]"LOAD"P$:[141]360:[141]550:[142] 290 [143] INPUTS * * * 300 [153]"WHAT IS THE TANK WIDTH (FEET & INCHES)? 310 INPUT"FEET";WF:INPUT"INCHES";WI:W=WF+WI/12:RETURN 320 PRINT"WHAT IS THE TANK LENGTH (FEET & INCHES)? 330 [133]"FEET";LF:[133]"INCHES";LI:L[178]LF[170]LI[173]12:[142] 340 [153]"WHAT IS THE TANK HEIGHT (FEET & INCHES)? 350 INPUT"FEET";HF:INPUT"INCHES";HI:H1=HF+HI/12:RETURN 360 PRINT"WHAT IS THE TANK DIAMETER (FEET & INCHES)? 370 [133]"FEET";DF:[133]"INCHES";DI:D[178]DF[170]DI[173]12:R[178]D[173]2:[142] 380 [143] CYLINDER END INPUTS * * * 390 [153]"WHAT DO THE ENDS OF THE TANK LOOK LIKE?" 400 [153]"F1WAIT-FLAT":[153]"F3WAIT-HEMISPHERIC":[153]"F5WAIT-SPHEROIDAL 410 PRINT"F7[146]-INVERTED SPHEROIDAL":PRINT" HIT F2[146] FOR DEFINITIONS 420 [161]B$:[139]B$[179]"INPUT"[176]B$[177]"GOTO"[167]420 430 B%[178][198](B$)[171]132:[139]B%[178]5[167][137]460 440 [142] 450 [143] * DEFINITIONS * 460 [153]P$;" DEFINITIONS" 470 [153]"HEMISPHERIC - THE TANK LOOKS LIKE A MEDICINE CAPSULE. 480 PRINT"SPHEROIDAL - THE ENDS ARE ROUNDED; HALF-WAY BETWEEN FLAT AND "; 490 PRINT"HEMISPHERIC. 500 [153]"INVERTED SPHEROIDAL - THE ENDS ARE DISHED INWARD, LIKE THE "; 510 [153]"BOTTOM OF A COKECAN.":[153]" HIT ANY KEY TO RETURN." 520 [161]C$:[139]C$[178]""[167]520 530 [137]390 540 [143] MAIN LOOP * * * 550 A$(1)[178]"A BOX":A$(2)[178]"AN UPRIGHT CYLINDER":A$(3)[178]"A CYLINDER ON ITS SIDE" 560 A$(4)[178]"A SPHERE":B$(1)[178]"FLAT":B$(2)[178]"HEMISPHERIC":B$(3)[178]"SPHEROIDAL" 570 B$(4)[178]"INVERTED "[170]B$(3) 580 [153]P$;"TYPE OF TANK="A$(A%) 590 [139]A%[178]2[176]A%[178]3[167][153]"TYPE OF END="B$(B%) 600 [153]"INSIDE MEASUREMENTS:" 610 [139]L[167][153]"LENGTH= "LF" FEET,"LI" INCHES" 620 [139]W[167][153]"WIDTH= "WF" FEET,"WI" INCHES" 630 [139]H1[167][153]"HEIGHT= "HF" FEET,"HI"INCHES" 640 [139]D[167][153]"DIAMETER= "DF" FEET,"DI"INCHES 650 PRINT"TYPE IN THE DEPTH OF THE LIQUID FROM THEBOTTOM TO THE SURFACE, "; 660 PRINT"IN INCHES ONLY." 670 PRINT" HIT F1[146] TO START OVER" 680 REM SOUNDING INPUT * * * 690 INPUT"DEPTH IN INCHES";S:GOTO710 700 INPUT"[145]";S$:S$=C$+S$:S=VAL(S$) 710 H=S/12:VOL=0 720 ONA%GOSUB780,810,980,1100:REM CALCULATION SUBROUTES 730 IFVOL>0THENGOSUB1130 740 PRINT"DEPTH?";:S$="" 750 C$="":GETC$:IFC$="[133]"THENRETURN 760 IFC$=""THEN750 770 PRINTC$:GOTO700 780 REM BOX CALC * * * 790 IFH<0ORH>H1THENPRINT"BE REASONABLE!":RETURN 800 VOL=L*W*H:RETURN 810 REM UPRIGHT CYLINDER CALC * * 820 IFH=<0ORH>H1THENPRINT"BE REASONABLE!":RETURN 830 ONB%GOSUB840,930,870,900:RETURN 840 VOL=(null)*R*R*H:RETURN 850 VOL=(null)*4/3*H*H*(R*3/2-H):RETURN 860 REM 870 IF HRTHENHS=H:H=R:GOSUB1100:K=VOL:H=HS-R:GOSUB840:VOL=K+VOL 960 IFH>R+H1THENHS=H:H=H-H1:GOSUB1100:K=VOL:H=H1:GOSUB840:VOL=K+VOL:H=HS 970 H1=H1+D:RETURN 980 REM SIDE CYLINDER CALC * * * 990 IFH<0ORH>DTHENPRINT"BE REASONABLE!":RETURN 1000 ONB%GOSUB1010,1070,1080,1090:RETURN 1010 X=(R-H)/R:IF X=-1 THENX=X+.000001 1020 IF X=1 THENX=X-.000001 1030 M=2*(-ATN(X/SQR(1-X*X))+(null)/2) 1040 A=R*R*(M-SIN(M))/2:VOL=A*L 1050 RETURN 1060 REM 1070 GOSUB1100:K=VOL:GOSUB1010:VOL=K+VOL:RETURN 1080 GOSUB1100:K=VOL/2:GOSUB1010:VOL=K+VOL:RETURN 1090 GOSUB1100:K=-VOL/2:GOSUB1010:VOL=K+VOL:RETURN 1100 REM SPHERE CALC * * * 1110 IFH<0ORH>DTHENPRINT"BE REASONABLE!":RETURN 1120 VOL=(null)*H*H*(R-H/3):RETURN 1130 REM CU. FT. TO GALLONS * * * 1140 VOL=VOL*7.481:D$="GALLONS" 1150 IFVOL<1THENVOL=VOL*4:D$="QUARTS" 1160 IFVOL<1THENVOL=VOL*2:D$="PINTS" 1170 IFVOL<1THENVOL=VOL*16:D$="OUNCES" 1180 VOL=INT(VOL*100+.5)/100 1190 PRINT"VOLUME ="VOL" "D$ 1200 RETURN 1210 VARIABLES 1220 ----------------------------------- 1230 A$,A% TYPE OF TANK SELECTION 1240 WF,WI,W WIDTH OF TANK 1250 LF,LI,L LENGTH OF TANK 1260 HF,HI,H1 HEIGHT OF TANK 1270 DF,DI,D DIAMETER OF TANK 1280 B$,B% TYPE OF ENDS 1290 S,H,S$ DEPTH OF LIQUID 1300 VOL VOLUME 1310 K TEMP VOLUME 1320 HS TEMP DEPTH 1330 X,A,C$ MISC 1340 P$ TITLE 1350 R RADIUS OF TANK